package com.example.myapplication.config

import android.content.Context
import android.content.SharedPreferences

/**
 * 应用配置
 * 可以在这里统一管理应用的各种配置
 */
object AppConfig {
    
    /**
     * 是否使用真实API
     * true: 使用新浪财经等真实API获取股票数据（失败时自动降级到模拟数据）
     * false: 使用模拟数据（用于开发和测试）
     */
    const val USE_REAL_API = true  // ✅ 启用真实API（已添加智能降级机制）
    
    /**
     * API请求超时时间（毫秒）
     */
    const val API_TIMEOUT = 10000L
    
    /**
     * 是否显示调试日志
     */
    const val DEBUG_MODE = true
    
    /**
     * 最小API请求间隔（毫秒）
     * 防止频繁请求
     */
    const val MIN_REQUEST_INTERVAL = 1000L
    
    /**
     * 历史数据默认天数（1个月）
     */
    const val DEFAULT_HISTORY_DAYS = 30
    
    /**
     * 数据缓存有效期（毫秒）
     * 5分钟内使用缓存数据
     */
    const val CACHE_VALIDITY = 5 * 60 * 1000L
    
    // ===== 服务器配置相关 =====
    
    private const val PREFS_NAME = "AppSettings"
    private const val KEY_SERVER_URL = "server_url"
    private const val DEFAULT_SERVER_URL = "http://45.26.199.6:8000/api"
    
    private var prefs: SharedPreferences? = null
    
    /**
     * 初始化配置（在Application或MainActivity中调用）
     */
    fun init(context: Context) {
        prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
    }
    
    /**
     * 获取服务器URL
     * 优先从SharedPreferences读取，如果没有则使用默认值
     */
    fun getServerUrl(context: Context): String {
        if (prefs == null) {
            init(context)
        }
        return prefs?.getString(KEY_SERVER_URL, DEFAULT_SERVER_URL) ?: DEFAULT_SERVER_URL
    }
    
    /**
     * 保存服务器URL
     */
    fun setServerUrl(context: Context, url: String) {
        if (prefs == null) {
            init(context)
        }
        prefs?.edit()?.putString(KEY_SERVER_URL, url)?.apply()
    }
}

